فارسی

قدرت `shape-outside` در CSS را برای ایجاد طرح‌بندی‌های بصری خیره‌کننده از طریق شکستن متن در اطراف اشکال سفارشی کشف کنید. تکنیک‌های عملی، سازگاری با مرورگرها و موارد استفاده پیشرفته را بیاموزید.

CSS Shape Outside: تسلط بر شکستن متن در اطراف اشکال سفارشی

در دنیای طراحی وب، ایجاد طرح‌بندی‌های جذاب و منحصربه‌فرد برای جلب توجه کاربر بسیار حیاتی است. در حالی که تکنیک‌های سنتی چیدمان CSS پایه‌ای محکم ارائه می‌دهند، ویژگی `shape-outside` بعد جدیدی از امکانات خلاقانه را باز می‌کند. این ویژگی به شما امکان می‌دهد متن را در اطراف اشکال سفارشی قرار دهید و صفحات وب معمولی را به تجربیات بصری فریبنده تبدیل کنید.

ویژگی `shape-outside` در CSS چیست؟

ویژگی `shape-outside`، که بخشی از ماژول CSS Shapes Module Level 1 است، شکلی را تعریف می‌کند که محتوای خطی مانند متن می‌تواند در اطراف آن جریان یابد. به جای محدود شدن به کادرهای مستطیلی، متن به زیبایی با خطوط شکل تعریف شده شما سازگار می‌شود و یک افکت پویا و از نظر بصری جذاب ایجاد می‌کند. این ویژگی به ویژه برای طرح‌بندی‌های مجله‌ای، بخش‌های اصلی (hero sections) و هر طرحی که می‌خواهید از ساختارهای سفت و سخت و جعبه‌ای رها شوید، مفید است.

سینتکس و مقادیر پایه

سینتکس برای `shape-outside` نسبتاً ساده است:

shape-outside: <shape-value> | <url> | none | inherit | initial | unset;

بیایید مقادیر ممکن را بررسی کنیم:

مثال‌های عملی و پیاده‌سازی

مثال ۱: شکستن متن در اطراف یک دایره

بیایید با یک مثال ساده از شکستن متن در اطراف یک دایره شروع کنیم:

.circle-shape {
  width: 200px;
  height: 200px;
  float: left; /* برای جریان یافتن متن در اطراف شکل مهم است */
  shape-outside: circle(50%);
  margin-right: 20px;
  background-color: #f0f0f0;
}

.text-container {
  width: 600px;
}

کد HTML:

<div class="circle-shape"></div>
<div class="text-container">
  <p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. ... (متن طولانی در اینجا) ... </p>
</div>

در این مثال، ما یک عنصر دایره‌ای با `shape-outside: circle(50%)` ایجاد می‌کنیم. ویژگی `float: left` بسیار مهم است؛ این ویژگی به متن اجازه می‌دهد تا در اطراف شکل جریان یابد. `margin-right` فاصله‌ای بین شکل و متن اضافه می‌کند.

مثال ۲: استفاده از `polygon()` برای ایجاد یک مثلث

حالا، بیایید با استفاده از `polygon()` یک شکل پیچیده‌تر ایجاد کنیم:

.triangle-shape {
  width: 200px;
  height: 200px;
  float: left;
  shape-outside: polygon(50% 0%, 0% 100%, 100% 100%);
  margin-right: 20px;
  background-color: #f0f0f0;
}

کد HTML:

<div class="triangle-shape"></div>
<div class="text-container">
  <p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. ... (متن طولانی در اینجا) ... </p>
</div>

در اینجا، ما یک مثلث را با استفاده از تابع `polygon()` تعریف می‌کنیم. مختصات، رئوس مثلث را مشخص می‌کنند: (50% 0%)، (0% 100%) و (100% 100%).

مثال ۳: استفاده از `url()` با یک تصویر

تابع `url()` به شما امکان می‌دهد شکلی را بر اساس کانال آلفای یک تصویر تعریف کنید. این کار امکانات خلاقانه‌تری را فراهم می‌کند.

.image-shape {
  width: 200px;
  height: 200px;
  float: left;
  shape-outside: url(path/to/your/image.png);
  margin-right: 20px;
  background-size: cover; /* برای مقیاس‌بندی مناسب مهم است */
}

کد HTML:

<div class="image-shape"></div>
<div class="text-container">
  <p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. ... (متن طولانی در اینجا) ... </p>
</div>

ملاحظات مهم برای `url()`:

تکنیک‌ها و ملاحظات پیشرفته

`shape-margin`

ویژگی `shape-margin` یک حاشیه در اطراف شکل اضافه می‌کند و فضای بیشتری بین شکل و متن اطراف ایجاد می‌کند. این کار خوانایی و جذابیت بصری را افزایش می‌دهد.

.circle-shape {
  width: 200px;
  height: 200px;
  float: left;
  shape-outside: circle(50%);
  shape-margin: 10px; /* یک حاشیه 10 پیکسلی در اطراف دایره اضافه می‌کند */
  margin-right: 20px;
  background-color: #f0f0f0;
}

`shape-image-threshold`

هنگام استفاده از `shape-outside: url()`، ویژگی `shape-image-threshold` آستانه کانال آلفا را که برای استخراج شکل استفاده می‌شود، تعیین می‌کند. مقادیر از 0.0 (کاملاً شفاف) تا 1.0 (کاملاً مات) متغیر هستند. تنظیم این مقدار می‌تواند تشخیص شکل را دقیق‌تر کند.

.image-shape {
  width: 200px;
  height: 200px;
  float: left;
  shape-outside: url(path/to/your/image.png);
  shape-image-threshold: 0.5; /* آستانه را در صورت نیاز تنظیم کنید */
  margin-right: 20px;
  background-size: cover;
}

ترکیب با ترنزیشن‌ها و انیمیشن‌های CSS

شما می‌توانید `shape-outside` را با ترنزیشن‌ها و انیمیشن‌های CSS ترکیب کنید تا افکت‌های پویا و تعاملی ایجاد کنید. به عنوان مثال، می‌توانید ویژگی `shape-outside` را انیمیت کنید تا شکل شکست متن در هنگام قرار گرفتن ماوس روی آن یا اسکرول تغییر کند.

.circle-shape {
  width: 200px;
  height: 200px;
  float: left;
  shape-outside: circle(50%);
  margin-right: 20px;
  background-color: #f0f0f0;
  transition: shape-outside 0.3s ease;
}

.circle-shape:hover {
  shape-outside: ellipse(60% 40% at 50% 50%);
}

در این مثال، ویژگی `shape-outside` هنگام قرار گرفتن ماوس روی آن، از یک دایره به یک بیضی تغییر می‌کند و یک افکت ظریف اما جذاب ایجاد می‌کند.

سازگاری با مرورگرها

`shape-outside` در مرورگرهای مدرن از جمله Chrome، Firefox، Safari و Edge پشتیبانی خوبی دارد. با این حال، مرورگرهای قدیمی‌تر ممکن است از آن پشتیبانی نکنند. ارائه یک جایگزین (fallback) برای مرورگرهای قدیمی‌تر برای اطمینان از تجربه کاربری ثابت بسیار مهم است.

استراتژی‌های جایگزین:

ملاحظات دسترسی‌پذیری

در حالی که `shape-outside` می‌تواند جذابیت بصری را افزایش دهد، در نظر گرفتن دسترسی‌پذیری بسیار مهم است. اطمینان حاصل کنید که متن خوانا باقی می‌ماند و شکل محتوای مهم را پنهان نمی‌کند. موارد زیر را در نظر بگیرید:

ملاحظات طراحی جهانی

هنگام پیاده‌سازی `shape-outside` برای مخاطبان جهانی، موارد زیر را در نظر بگیرید:

موارد استفاده و الهام‌بخش

`shape-outside` می‌تواند به روش‌های خلاقانه مختلفی استفاده شود:

مثال‌ها:

عیب‌یابی مشکلات رایج

نتیجه‌گیری

ویژگی `shape-outside` در CSS ابزاری قدرتمند برای ایجاد طرح‌بندی‌های وب بصری خیره‌کننده و منحصربه‌فرد است. با شکستن متن در اطراف اشکال سفارشی، می‌توانید از طراحی‌های مستطیلی سنتی رها شوید و تجربیات کاربری جذابی ایجاد کنید. به یاد داشته باشید که هنگام پیاده‌سازی `shape-outside` در پروژه‌های خود، سازگاری با مرورگر، دسترسی‌پذیری و ملاحظات طراحی جهانی را در نظر بگیرید. با اشکال، تصاویر و انیمیشن‌های مختلف آزمایش کنید تا پتانسیل کامل این ویژگی هیجان‌انگیز CSS را باز کنید. با تسلط بر `shape-outside`، می‌توانید طراحی‌های وب خود را ارتقا دهید و تجربیات آنلاین به‌یادماندنی برای کاربران در سراسر جهان ایجاد کنید.

یادگیری بیشتر و منابع